<?php
/**
 * Created by PhpStorm.
 * User: ycbwl
 * Date: 2018/10/20
 * Time: 12:40 AM
 */
namespace app\lib\exception;


use think\exception\Handle;
use think\facade\Log;
use think\facade\Request;

class ExceptionHandler extends Handle
{

    private $code;
    private $msg;
    private $errorCode;
    //需要返回客户端当前请求的url路径

    public function render(\Exception $e)
    {
        if(config("app_debug")){
            return parent::render($e);
        }else{
            if($e instanceof ApiException){
                $result = [
                    'code'=>$e->getCode(),
                    'msg'=>$e->getMessage()
                ];
                return json($result);
            }else{
                $result = [
                    "code" => 500,
                    "msg"=>"服务器内部错误"
                ];
                return  json($result);
            }
        }

//        if($e instanceof BaseException){
//            //如果是自定义的异常
//            $this->code = $e->code;
//            $this->msg = $e->msg;
//            $this->errorCode = $e->errorCode;
//        }else{
//            if(config("app_debug")){
//                // return default error page
//                return parent::render($e);
//            }else{
//                $this->code = 500;
//                $this->msg = '服务器内部错误,不想告诉你';
//                $this->errorCode = 999;
//                $this->recordErrorLog($e);
//            }
//        }
//        $request = Request::instance();
//        $result = [
//            'msg'=>$this->msg,
//            'error_code'=>$this->errorCode,
//            'request_url'=>$request->url()
//        ];
//        return json($result,$this->code);
    }


    private function recordErrorLog(\Exception $e){
        Log::init([
            'type'=>'File',
            'path'=>'',
            'level'=>['error']
        ]);
        Log::write($e->getMessage(),'error');
    }

}